package com.sky.facade;

/**
 * @author : wushikai
 * <p>
 * date : 2020-08-12
 */

/*---------外观模式\门面模式  实例----------*/

/*
 * 经理人通过该类作为中间交互者，可以接受投资者的资金，统一对股票、国债、房地产进行购买和赎回操作*/
class Manager {


    private Stock stock;
    private Estate estate;
    private Fund fund;

    Manager( ) {
        stock = new Stock();
        estate = new Estate();
        fund = new Fund();
    }

    void buy() {
        System.out.println("---------经理人-------");
        stock.buy();
        estate.buy();
        fund.buy();
    }

    void sell() {

        System.out.println("--------经理人----------");
        stock.sell();
        estate.sell();
        fund.sell();
    }

}


/*stock类*/
class Stock {


    //买股票
    void buy( ) {
        System.out.println("股票买入");
    }

    //卖股票
    void sell( ) {
        System.out.println("股票卖出");
    }


}

/*基金类*/

class Fund {


    //买基金
    void buy( ) {
        System.out.println("基金买入");
    }

    //卖基金
    void sell( ) {
        System.out.println("基金卖出");
    }

}

class Estate {

    //买房地产
    void buy( ) {
        System.out.println("房地产买入");
    }

    //卖房地产
    void sell( ) {
        System.out.println("房地产卖出");
    }


}

/**
 * 证券交易所
 * */
class Bourse {


    public static void main(String[] args) {

        /*如果你不用门面模式, 什么事情都亲历亲为, 那么*/
/*        Stock stock = new Stock();
        Estate estate = new Estate();
        Fund fund = new Fund();

        stock.buy();
        fund.buy();
        estate.buy();

        stock.sell();
        fund.sell();
        estate.sell();*/


        /*if 使用了门面模式,  由经理人给你买卖*/
        Manager manager = new Manager();
        manager.buy();
        manager.sell();











    }

}
